package com.itheima.pattern.t20_visitor;

/**
 * 访问者模式：
 * 封装一些作用于某种数据结构中的各元素的操作，它可以在不改变这个数据结构的前提下定义作用于这些元素的新的操作。
 */
public class TestDemo {

    public static void main(String[] args) {
        // 创建Home对象
        Home home = new Home();
        // 添加元素到Home对象中
        home.add(new Dog());
        home.add(new Cat());

        // 创建主人对象
        Person owner = new Owner();
        // 让主人喂食所有宠物
        home.action(owner);

        // 创建其他人对象
        Person someone = new Someone();
        // 让其他人喂食所有宠物
        home.action(someone);
    }
}
